package com.sxj.shop.listener;

import javax.servlet.ServletContext;
import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

@WebListener
public class CountListener implements HttpSessionListener {

    @Override
    public void sessionCreated(HttpSessionEvent se) {
        System.out.println("**********************CountListener.sessionCreated**********************");
        // 获取当前在线人数
        // 由于该数据是对整个应用生效的,因此是存储在application作用域的
        // 获取application对象
        ServletContext application = se.getSession().getServletContext();

        synchronized (this) {
            Integer count = (Integer) application.getAttribute("count");
            // 判断当前count是否存在
            if (count == null) {
                // 如果不存在,说明尚未有人访问过,设置初始值
                count = 1;
            } else {
                count++;
            }
            application.setAttribute("count", count);
        }
    }
}
